home *** CD-ROM | disk | FTP | other *** search
- unit CalendarTest;
- {
- Author : Neil McClements
- Date : January '97
- C/right: (c) 1997 N. McClements
- Purpose: Simple application to demonstrate cached components
- Note : The calendar.db file must be copied into the same directory as the
- source code/exe.
-
- Cache files are as follows :
- a) c:\test1.cfg - step 1 combo box
- b) c:\test2.cfg - step 2 combo box
- c) c:\Calendar.cfg - step 3 calendar demo
- }
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, DBTables, DB, Grids, Calendar, CachedCalendar, CachedCombo,
- ExtCtrls;
-
- type
- TCacheForm = class(TForm)
- GroupBox2: TGroupBox;
- ComboBox1: TComboBox;
- btnSaveToStream: TButton;
- btnClear: TButton;
- btnLoadFromStream: TButton;
- GroupBox3: TGroupBox;
- btnClearCacheCombo: TButton;
- CachedCombo1: TCachedCombo;
- CheckBox2: TCheckBox;
- btnLoadCacheCombo: TButton;
- Button6: TButton;
- Button7: TButton;
- GroupBox4: TGroupBox;
- GroupBox1: TGroupBox;
- CachedCalendar1: TCachedCalendar;
- Button2: TButton;
- Button3: TButton;
- Button4: TButton;
- Button5: TButton;
- Button1: TButton;
- Database1: TDatabase;
- Query1: TQuery;
- DataSource1: TDataSource;
- CheckBox1: TCheckBox;
- pnlYear: TPanel;
- pnlMonth: TPanel;
- procedure Button1Click(Sender: TObject);
- procedure CheckBox1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- procedure Button4Click(Sender: TObject);
- procedure Button5Click(Sender: TObject);
- procedure FormShow(Sender: TObject);
- procedure btnSaveToStreamClick(Sender: TObject);
- procedure btnClearClick(Sender: TObject);
- procedure btnLoadFromStreamClick(Sender: TObject);
- procedure btnClearCacheComboClick(Sender: TObject);
- procedure btnLoadCacheComboClick(Sender: TObject);
- procedure CheckBox2Click(Sender: TObject);
- procedure Button6Click(Sender: TObject);
- procedure Button7Click(Sender: TObject);
- private
- { Private declarations }
- public
- procedure RefreshLabels;
- end;
-
- var
- CacheForm: TCacheForm;
-
- implementation
-
- {$R *.DFM}
-
- procedure TCacheForm.Button1Click(Sender: TObject);
- begin
- // Refill the calendar from the database (initially)
- CachedCalendar1.Refresh;
- end;
-
- procedure TCacheForm.CheckBox1Click(Sender: TObject);
- begin
- // Allow the user to switch between cached/non-cached. Changing modes takes a
- // split second.
- CachedCalendar1.UseCache:=CheckBox1.Checked;
- end;
-
- procedure TCacheForm.Button2Click(Sender: TObject);
- begin
- // Move the calendar back one month
- CachedCalendar1.month:=CachedCalendar1.month-1;
- RefreshLabels;
- end;
-
- procedure TCacheForm.Button3Click(Sender: TObject);
- begin
- // Move the calendar back one year
- CachedCalendar1.Year:=CachedCalendar1.Year-1;
- RefreshLabels;
- end;
-
- procedure TCacheForm.Button4Click(Sender: TObject);
- begin
- // Move the calendar along one month
- CachedCalendar1.Month:=CachedCalendar1.Month+1;
- RefreshLabels;
- end;
-
- procedure TCacheForm.Button5Click(Sender: TObject);
- begin
- // Move the calendar along one year
- CachedCalendar1.Year:=CachedCalendar1.Year+1;
- RefreshLabels;
- end;
-
- procedure TCacheForm.RefreshLabels;
- begin
- // Keep the display informative - this sort of functionality could even be written into
- // the TCachedcalendar component itself, for completeness.
- pnlMonth.caption:=FormatdateTime('mmmm', encodedate(CachedCalendar1.year, CachedCalendar1.month, CachedCalendar1.day));
- pnlYear.caption:=FormatdateTime('yyyy', encodedate(CachedCalendar1.year, CachedCalendar1.month, CachedCalendar1.day));
- pnlMonth.alignment:=taCenter;
- pnlYear.alignment:=taCenter;
- end;
-
- procedure TCacheForm.FormShow(Sender: TObject);
- begin
- RefreshLabels;
- end;
-
- procedure TCacheForm.btnSaveToStreamClick(Sender: TObject);
- var
- stream:tfilestream;
- begin
- // Try caching the items to a file stream
- stream:=TFileStream.create('c:\test.cfg', fmCreate or fmOpenWrite);
- ComboBox1.items.savetostream(stream);
- stream.free;
- end;
-
- procedure TCacheForm.btnClearClick(Sender: TObject);
- begin
- ComboBox1.clear;
- end;
-
- procedure TCacheForm.btnLoadFromStreamClick(Sender: TObject);
- var
- stream:tfilestream;
- begin
- // Try retrieving the cached items from the stream
- stream:=TFileStream.create('c:\test.cfg', fmOpenRead);
- combobox1.items.loadfromstream(stream);
- stream.free;
- end;
-
- procedure TCacheForm.btnClearCacheComboClick(Sender: TObject);
- begin
- CachedCombo1.clear;
- end;
-
- procedure TCacheForm.btnLoadCacheComboClick(Sender: TObject);
- begin
- CachedCombo1.Populate;
- end;
-
- procedure TCacheForm.CheckBox2Click(Sender: TObject);
- begin
- // Allow the user to switch between cached/non-cached. Changing modes takes a
- // split second.
- CachedCombo1.UseCache:=CheckBox2.Checked;
- end;
-
- procedure TCacheForm.Button6Click(Sender: TObject);
- begin
- CachedCombo1.WriteListToStream;
- end;
-
- procedure TCacheForm.Button7Click(Sender: TObject);
- begin
- CachedCombo1.ReadListFromStream;
- end;
-
- end.
-